import vnode from './vnode'
import createElement from './createElement'
import patchVnode from './patchVnode'
import { isSameNode } from './updateVnode'
/**
 * 
 * @param {*} oldVnode 
 * @param {*} newVnode 
 */
export default function(oldVnode,newVnode){
    // 判断传入的第一个参数是dom节点还是虚拟节点
    if(oldVnode.sel === '' || oldVnode.sel === undefined){ //
        oldVnode = vnode(oldVnode.tagName.toLowerCase(),{},[],undefined,oldVnode)
    }
    
    if(isSameNode(oldVnode,newVnode)){ // 判断是否是同一个节点 
        patchVnode(oldVnode,newVnode)
    }else{
        let childElm = createElement(newVnode)
        oldVnode.elm.parentNode.insertBefore(childElm,oldVnode.elm)
        childElm.parentNode.removeChild(oldVnode.elm)
    }
}